package main

import (
	"fmt"
	"net"
)

func main() {

	addr, err := net.ResolveUDPAddr("udp", ":8090")
	handleErr(err)

	conn, err := net.ListenUDP("udp", addr)
	handleErr(err)

	// 要发送的数据的字节长度为n的话, 要么要设置recv_buf的长度应该为 20(ip) + 8(udp) + n
	// 如果要设置的数据要低于这个长度的话, 那么该报文会被直接丢弃
	_ = conn.SetReadBuffer(39)

	for {
		fmt.Println("abc")
		buf := make([]byte, 1024)
		rn, err := conn.Read(buf)
		handleErr(err)

		fmt.Println(string(buf[:rn]))
	}

}

func handleErr(err error) {
	if err != nil {
		panic(err)
	}
}
